/**
 * 用户使用的货币设置
 * 
 * 优先级：用户选择 > 持久化用户数据 > 上次使用 > 系统语言判定
 * 
 */
import { i18n } from '@/i18n'
const tc: Function = i18n.global.t
// 初始化数据
const defaultCurrency: string = 'USD'

// 可接受的货币列表
// 需要在 i18n 中配置现实的文字（name）字段
export const currency_list: any = {
  'CNY': { name: tc('currency.cny'), alias: 'CNY', mark: '¥' },
  'USD': { name: tc('currency.usd'), alias: 'USD', mark: '$' },
  'HKD': { name: tc('currency.hkd'), alias: 'HKD', mark: '$' },
  'MOP': { name: tc('currency.mop'), alias: 'MOP', mark: '$' },
  'EUR': { name: tc('currency.eur'), alias: 'EUR', mark: '€' },
}

// 设置货币
export const handleSetCurrency = (currencyMark: string = defaultCurrency) => {
  let realCurrencyMark: string = defaultCurrency
  if (currency_list.hasOwnProperty(currencyMark)) {
    // 合法的货币符号
    realCurrencyMark = currencyMark
  }
  localStorage.setItem('currency', realCurrencyMark)
  // 这里是全局更改货币的地方
  return realCurrencyMark
}

// 初始化
const init = () => {
  const localSettedCurrency = localStorage.getItem('currency')
  if (!localSettedCurrency) {
    handleSetCurrency(defaultCurrency)
  } else {
    handleSetCurrency(localSettedCurrency)
  }
}
init()

export const handleGetCurrency = () => {
  return localStorage.getItem('currency')
}